<%
# encoding: utf-8
#
# Redmine plugin for Document Management System "Features"
#
# Copyright © 2011-20 Karel Pičman <karel.picman@kontron.com>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
%>

<table class="display list dmsf_list" id="browser">
  <thead>
    <tr>
      <th class="dmsf_checkbox dmsf_th">
        <% unless @system_folder %>
          <%= check_box_tag 'check_all', '', false, :class => 'toggle-selection',
                            :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
        <% end %>
      </th>
      <% if DmsfFolder.is_column_on?('id') %>
          <th class="dmsf_th">#</th>
      <% end %>
      <% if DmsfFolder.is_column_on?('title') %>
        <th class="dmsf_th"><%= l(:link_title) %></th>
      <% end %>
      <% if DmsfFolder.is_column_on?('extension') %>
          <th class="dmsf_th"><%= l(:link_extension) %></th>
      <% end %>
      <% if DmsfFolder.is_column_on?('size') %>
        <th class="dmsf_th"><%= l(:link_size) %></th>
      <% end %>
      <% if DmsfFolder.is_column_on?('modified') %>
        <th class="dmsf_th"><%= l(:link_modified) %></th>
      <% end %>
      <% if DmsfFolder.is_column_on?('version') %>
        <th title="<%= l(:label_dmsf_version) %>" class ="dmsf_th"><%= l(:link_ver) %></th>
      <% end %>
      <% if DmsfFolder.is_column_on?('workflow') %>
        <th class="dmsf_th"><%= l(:link_workflow) %></th>
      <% end %>
      <% if DmsfFolder.is_column_on?('author') %>
        <th class="dmsf_th"><%= l(:link_author) %></th>
      <% end %>
      <% CustomField.where(type: 'DmsfFileRevisionCustomField').order(:position).each do |c| %>
        <% if DmsfFolder.is_column_on?(c.name) %>
          <th class="dmsf_th"><%= h(c.name) %></th>
        <% end %>
      <% end %>
      <th class ="dmsf_th"><%# controls %></th>
      <th class="none"><%# position %></th>
      <th class="none"><%# size calculated %></th>
      <th class="none"><%# modified calculated %></th>
      <th class="none"><%# version calculated %></th>
      <th class="none"><%# clear title %></th>
    </tr>
  </thead>
  <tbody>
  <% classes = 'dir hascontextmenu' %>
  <% @subfolders.each do |subfolder| %>
    <tr class="<%= classes %> <%= 'dmsf_system' if subfolder.system %> <%= 'dmsf_system_closed' if subfolder.issue && subfolder.issue.closed? %>">
      <%= render(:partial => 'dir',
        :locals => {
          :project => @project,
          :subfolder => subfolder,
          :link => nil,
          :id => subfolder.id,
          :name => 'folder',
          :title => subfolder.title,
          :position => 0 }) %>
    </tr>
  <% end %>
  <% classes = 'dmsf_gray hascontextmenu' %>
  <% @dir_links.each do |link| %>
    <% unless link.target_project %>
      <% Rails.logger.error "Error: dmsf_link id #{link.id} has no target!" %>
      <% next %>
    <% end %>
    <tr class="<%= classes %>">
      <%= render(:partial => 'dir',
        :locals => {
          :project => link.target_project,
          :subfolder => link.target_folder,
          :link => link,
          :id => link.id,
          :name => 'folder-link',
          :title => link.name,
          :position => 0}) %>
    </tr>
  <% end %>
  <% classes = 'file hascontextmenu' %>
  <% @files.each do |file| %>
    <% unless file.last_revision %>
      <% Rails.logger.error "Error: dmsf_file id #{file.id} has no revision!" %>
      <% next %>
    <% end %>
    <tr class="<%= classes %>">
      <%= render(:partial => 'file', :locals => {
          :project => @project,
          :file => file,
          :link => nil,
          :id => file.id,
          :name => 'file',
          :title => file.title,
          :position => 1 }) %>
    </tr>
  <% end %>
  <% classes = 'dmsf_gray hascontextmenu' %>
  <% @file_links.each do |link| %>
    <% unless link.target_file && link.target_file.last_revision %>
      <% Rails.logger.error "Error: dmsf_file id #{link.target_id} has no revision!" %>
      <% next %>
    <% end %>
    <tr class="<%= classes %>">
      <%= render(:partial => 'file', :locals => {
          :project => link.target_project,
          :file => link.target_file,
          :link => link,
          :id => link.id,
          :name => 'file-link',
          :title => link.name,
          :position => 1}) %>
    </tr>
    <% end %>
    <% @url_links.each do |link| %>
      <tr class="<%= classes %>">
        <%= render(:partial => 'url', :locals => {
            :project => link.target_project,
            :file => link.target_file,
            :link => link,
            :id => link.id,
            :name => 'url-link',
            :title => link.name,
            :position => 1}) %>
      </tr>
    <% end %>
  </tbody>
</table>
